home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / PInterfaces / QD3DStorage.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  6.1 KB  |  154 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DStorage.p
  3.  
  4.      Contains:    Abstraction to deal with various types of stream-based storage devices        
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.5.4
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT QD3DStorage;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __QD3DSTORAGE__}
  27. {$SETC __QD3DSTORAGE__ := 1}
  28.  
  29. {$I+}
  30. {$SETC QD3DStorageIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __QD3D__}
  34. {$I QD3D.p}
  35. {$ENDC}
  36.  
  37. {$IFC TARGET_OS_MAC }
  38. {$IFC UNDEFINED __MACTYPES__}
  39. {$I MacTypes.p}
  40. {$ENDC}
  41. {$IFC UNDEFINED __FILES__}
  42. {$I Files.p}
  43. {$ENDC}
  44. {$ENDC}  {TARGET_OS_MAC}
  45.  
  46.  
  47. {$PUSH}
  48. {$ALIGN POWER}
  49. {$LibExport+}
  50.  
  51. {*****************************************************************************
  52.  **                                                                             **
  53.  **                                Storage Routines                             **
  54.  **                                                                             **
  55.  ****************************************************************************}
  56. FUNCTION Q3Storage_GetType(storage: TQ3StorageObject): TQ3ObjectType; C;
  57. FUNCTION Q3Storage_GetSize(storage: TQ3StorageObject; VAR size: UInt32): TQ3Status; C;
  58.  *    Reads "dataSize" bytes starting at offset in storage, copying into data. 
  59.  *    sizeRead returns the number of bytes filled in. 
  60.  *    
  61.  *    You may assume if *sizeRead < dataSize, then EOF is at offset + *sizeRead
  62.  }
  63. FUNCTION Q3Storage_GetData(storage: TQ3StorageObject; offset: UInt32; dataSize: UInt32; VAR data: UInt8; VAR sizeRead: UInt32): TQ3Status; C;
  64.  *    Write "dataSize" bytes starting at offset in storage, copying from data. 
  65.  *    sizeWritten returns the number of bytes filled in. 
  66.  *    
  67.  *    You may assume if *sizeRead < dataSize, then EOF is at offset + *sizeWritten
  68.  }
  69. FUNCTION Q3Storage_SetData(storage: TQ3StorageObject; offset: UInt32; dataSize: UInt32; {CONST}VAR data: UInt8; VAR sizeWritten: UInt32): TQ3Status; C;
  70. {*****************************************************************************
  71.  **                                                                             **
  72.  **                             Memory Storage Prototypes                         **
  73.  **                                                                             **
  74.  ****************************************************************************}
  75. FUNCTION Q3MemoryStorage_GetType(storage: TQ3StorageObject): TQ3ObjectType; C;
  76. {
  77.  * These calls COPY the buffer into QD3D space
  78.  }
  79. FUNCTION Q3MemoryStorage_New({CONST}VAR buffer: UInt8; validSize: UInt32): TQ3StorageObject; C;
  80. FUNCTION Q3MemoryStorage_Set(storage: TQ3StorageObject; {CONST}VAR buffer: UInt8; validSize: UInt32): TQ3Status; C;
  81. {
  82.  * These calls use the pointer given - you must dispose it when you're through
  83.  }
  84. FUNCTION Q3MemoryStorage_NewBuffer(buffer: Ptr; validSize: UInt32; bufferSize: UInt32): TQ3StorageObject; C;
  85. FUNCTION Q3MemoryStorage_SetBuffer(storage: TQ3StorageObject; buffer: Ptr; validSize: UInt32; bufferSize: UInt32): TQ3Status; C;
  86. FUNCTION Q3MemoryStorage_GetBuffer(storage: TQ3StorageObject; VAR buffer: Ptr; VAR validSize: UInt32; VAR bufferSize: UInt32): TQ3Status; C;
  87. {$IFC TARGET_OS_MAC }
  88. {*****************************************************************************
  89.  **                                                                             **
  90.  **                                Macintosh Handles Prototypes                 **
  91.  **                                                                             **
  92.  ****************************************************************************}
  93. { Handle Storage is a subclass of Memory Storage }
  94. FUNCTION Q3HandleStorage_New(handle: Handle; validSize: UInt32): TQ3StorageObject; C;
  95. FUNCTION Q3HandleStorage_Set(storage: TQ3StorageObject; handle: Handle; validSize: UInt32): TQ3Status; C;
  96. FUNCTION Q3HandleStorage_Get(storage: TQ3StorageObject; VAR handle: Handle; VAR validSize: UInt32): TQ3Status; C;
  97. {*****************************************************************************
  98.  **                                                                             **
  99.  **                                Macintosh Storage Prototypes                 **
  100.  **                                                                             **
  101.  ****************************************************************************}
  102. FUNCTION Q3MacintoshStorage_New(fsRefNum: INTEGER): TQ3StorageObject; C;
  103. { Note: This storage is assumed open }
  104. FUNCTION Q3MacintoshStorage_Set(storage: TQ3StorageObject; fsRefNum: INTEGER): TQ3Status; C;
  105. FUNCTION Q3MacintoshStorage_Get(storage: TQ3StorageObject; VAR fsRefNum: INTEGER): TQ3Status; C;
  106. FUNCTION Q3MacintoshStorage_GetType(storage: TQ3StorageObject): TQ3ObjectType; C;
  107.  
  108. {*****************************************************************************
  109.  **                                                                             **
  110.  **                            Macintosh FSSpec Storage Prototypes                 **
  111.  **                                                                             **
  112.  ****************************************************************************}
  113. FUNCTION Q3FSSpecStorage_New({CONST}VAR fs: FSSpec): TQ3StorageObject; C;
  114. FUNCTION Q3FSSpecStorage_Set(storage: TQ3StorageObject; {CONST}VAR fs: FSSpec): TQ3Status; C;
  115. FUNCTION Q3FSSpecStorage_Get(storage: TQ3StorageObject; VAR fs: FSSpec): TQ3Status; C;
  116. {$ENDC}  {TARGET_OS_MAC}
  117.  
  118. {$IFC TARGET_OS_WIN32 }
  119. {*****************************************************************************
  120.  **                                                                             **
  121.  **                            Win32 HANDLE Storage Prototypes                     **
  122.  **                                                                             **
  123.  ****************************************************************************}
  124. FUNCTION Q3Win32Storage_New(hFile: HANDLE): TQ3StorageObject; C;
  125. FUNCTION Q3Win32Storage_Set(storage: TQ3StorageObject; hFile: HANDLE): TQ3Status; C;
  126. FUNCTION Q3Win32Storage_Get(storage: TQ3StorageObject; VAR hFile: HANDLE): TQ3Status; C;
  127. {$ENDC}  {TARGET_OS_WIN32}
  128.  
  129.  
  130. {*****************************************************************************
  131.  **                                                                             **
  132.  **                                Unix Path Prototypes                         **
  133.  **                                                                             **
  134.  ****************************************************************************}
  135. FUNCTION Q3UnixPathStorage_New(pathName: ConstCStringPtr): TQ3StorageObject; C;
  136. { C string }
  137. FUNCTION Q3UnixPathStorage_Set(storage: TQ3StorageObject; pathName: ConstCStringPtr): TQ3Status; C;
  138. { C string }
  139. FUNCTION Q3UnixPathStorage_Get(storage: TQ3StorageObject; pathName: CStringPtr): TQ3Status; C;
  140. { pathName is a buffer }
  141.  
  142. {$ALIGN RESET}
  143. {$POP}
  144.  
  145. {$SETC UsingIncludes := QD3DStorageIncludes}
  146.  
  147. {$ENDC} {__QD3DSTORAGE__}
  148.  
  149. {$IFC NOT UsingIncludes}
  150.  END.
  151. {$ENDC}
  152.